﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using FuenteDeDatos.Interfaces;
using FuenteDeDatos.FabricaDatos;
using FuenteDeDatos.Entidades;
using log4net;

namespace FuenteDeDatos.DAOSqlServer
{
    public class DAOSqlServerAccesoCategoria : IDAOAccesoCategoria
    {
        // variable para el uso de Log4Net
        private static log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);

        IDAOAccesoConexion bd = FabricaConexion.DaoSqlServerAccesoConexion();

        public DAOSqlServerAccesoCategoria()
        {
        }

        #region Métodos

        public bool AgregarCategoria(Categoria categoria)
        {
            log.Info("DAO ACCESO CATEGORIA ");
            log.Info("----" + categoria.Nombre + "-----" + categoria.Descripcion);

            SqlCommand command = new SqlCommand();
            try
            {

                log.Info("DAO en el try ");
                bd.AbrirConexionBd();
                log.Info("DAO abrir conexion bd ");
                log.Info("ser abrio la conexion para crear categoria com___");
                command.Connection = bd.ObjetoConexion();
                command.CommandType = System.Data.CommandType.StoredProcedure; //Tipo de comando que se va a ejecutar
                command.CommandText = "[dbo].[INSCategoria]"; // Nombre del Procedimiento Almacenado en la Base de Datos
                command.CommandTimeout = 10;
                command.Parameters.AddWithValue("@NombreCategoria",categoria.Nombre);
                command.Parameters.AddWithValue("@Descripcion", categoria.Descripcion);
                command.Parameters.AddWithValue("@Empate", categoria.Empate);
                command.Parameters.AddWithValue("@Dos_Jugadores", categoria.DosJugadores);
                command.Parameters.AddWithValue("@ImagenRuta", categoria.ImagenRuta);
                //command.Parameters.AddWithValue("@Empate", categoria.Empate);
                //command.Parameters.AddWithValue("@Dos_Jugadores", categoria.DosJugadores);
                //command.Parameters.AddWithValue("@ImagenRuta", categoria.ImagenRuta);
                log.Info("DAO ANTES DE EJECUTAR STORED PROCEDURES  en categoria");
                SqlDataReader reader = command.ExecuteReader();
                log.Info("despues que ejecuto la categoria");
              
                reader.Close();
                bd.CerrarConexionBd();
                return true;
            }
            catch (Exception e)
            {
                return false;
            }
        }

        public Categoria BuscarCategoria(String nombreCategoria) 
        {
            throw new NotImplementedException();
        }

        public bool ModificarCategoria(Categoria categoria) 
        {
            throw new NotImplementedException();
        }

        public List<Categoria> ConsultarAllCategorias() 
        {
            throw new NotImplementedException();
        }
        #endregion

    }
}
